package com.keduw.java;

/**
 * 给定一个字符串 s ，请你找出其中不含有重复字符的 最长子串 的长度。
 *
 *  
 *
 * 示例 1:
 *
 * 输入: s = "abcabcbb"
 * 输出: 3
 * 解释: 因为无重复字符的最长子串是 "abc"，所以其长度为 3。
 * 示例 2:
 *
 * 输入: s = "bbbbb"
 * 输出: 1
 * 解释: 因为无重复字符的最长子串是 "b"，所以其长度为 1。
 * 示例 3:
 *
 * 输入: s = "pwwkew"
 * 输出: 3
 * 解释: 因为无重复字符的最长子串是 "wke"，所以其长度为 3。
 *      请注意，你的答案必须是 子串 的长度，"pwke" 是一个子序列，不是子串。
 * 示例 4:
 *
 * 输入: s = ""
 * 输出: 0
 *  
 *
 * 提示：
 *
 * 0 <= s.length <= 5 * 104
 * s 由英文字母、数字、符号和空格组成
 *
 * @author 林风自在
 * @date 2020.11.27
 */
public class Solution {

    public int lengthOfLongestSubstring(String s) {
        int maxLength = 0;
        char[] chars = s.toCharArray();
        for(int i = 0; i < chars.length; i++){
            StringBuilder builder = new StringBuilder();
            builder.append(chars[i]);
            for (int j = i + 1; j < chars.length; j++){
                if(!builder.toString().contains(String.valueOf(chars[j]))){
                    builder.append(chars[j]);
                }else{
                    break;
                }
            }
            int currLength = builder.toString().length();
            if(currLength > maxLength){
                maxLength = currLength;
            }
        }
        return maxLength;
    }
}
